Repository navigation
chore(deps): update dependency bits-ui to v2.20.2 - #60
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/bits-ui-2.x
branch
from
September 16, 2026 20:44
894addd to
74d55a8
Compare
renovate
Bot
force-pushed
the
renovate/bits-ui-2.x
branch
from
September 30, 2026 00:03
74d55a8 to
18f7c05
Compare
renovate
Bot
force-pushed
the
renovate/bits-ui-2.x
branch
from
October 10, 2026 10:10
18f7c05 to
876e466
Compare
renovate
Bot
force-pushed
the
renovate/bits-ui-2.x
branch
from
October 30, 2026 04:44
876e466 to
7432fe2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.18.1→2.20.2Release Notes
huntabyte/bits-ui (bits-ui)
v2.20.2Compare Source
Patch Changes
fix(Combobox): let
Home/Endmove the text cursor inCombobox.Inputinstead of highlighting the first/last item (#2241)fix(Select): space to toggle items (#2073)
Fix Date Field rejecting and rendering day 31 before a month is selected (#2187)
fix(Floating): apply the content's z-index to the floating wrapper when force-mounted content opens (#1961)
fix(Select, Combobox): select the pressed item when the list scrolls under a still pointer before release (#2232)
fix(Combobox): open the trigger on a click that no pointer press precedes (
detail: 0), such aselement.click()or a VoiceOver activation in Safari (#2186)fix: silence
state_referenced_locallycompiler warnings emitted in consumer builds by wrapping intentional initialization-time prop reads inuntrack(#2179)v2.20.1Compare Source
Patch Changes
fix(Calendar, RangeCalendar): keep a day tabbable when the placeholder is disabled after mount or after Prev/Next. Also applies to
DatePickerandDateRangePicker. (#2235)fix(Command): avoid remounting all items on the first search character when
shouldFilterisfalse(#2240)fix(Floating): avoid an invalid
z-index: undefinedwrapper style that logs warnings in Firefox (#2076)fix(DropdownMenu, ContextMenu, Menubar): select the pressed item when the content scrolls under a still pointer before release (sibling of #2231) (#2237)
chore: update
@floating-ui/core,@floating-ui/dom,esm-env, andtabbableto their latest minor versions (#2234)fix(RangeCalendar): preserve the weekday when moving focus with Arrow Up/Down past disabled dates (#2224) (#2236)
v2.20.0Compare Source
Minor Changes
autocomplete="off"on the hidden input by default to discourage browser autofill, and add anautocompleteprop toRadioGroup.Rootto override it (#2198)Patch Changes
fix(Calendar): fall back to the default
placeholderwhen spread props are reassigned andplaceholderis not bound, preventingCannot read properties of undefined (reading 'set'). Also applies toRangeCalendar,DatePicker,DateRangePicker,DateRangeField,TimeField, andTimeRangeField. (#2226)fix(Select): open the trigger on a click that no pointer press precedes (
detail: 0), such aselement.click()or a VoiceOver activation in Safari (#2227)fix(Calendar/RangeCalendar): prevent weekday headers, heading, and cell labels from shifting by a day when using a
ZonedDateTimein a time zone ahead of the local one (#2215)fix(Collapsible/Accordion): prevent content mounted open from playing its open animation (#2209)
fix(Command): skip deferred root work after
Command.Rootis destroyed (#2210)fix(Command): scroll the first item into view when items aren't grouped (#2003)
fix(DatePicker): respect
preventDefault()inContent'sonOpenAutoFocusso the calendar day is not auto-focused (also applies toDateRangePicker) (#2219)fix: prevent content from flashing visible for a frame after its exit animation when Svelte async mode is enabled (#2193)
fix(Select/Combobox/DropdownMenu): don't open the trigger when it's disabled by an ancestor
<fieldset disabled>(#2214)fix(body-scroll-lock): restore body
pointer-eventsas soon as the last lock is released so clicks right after a layer closes aren't lost (#2221)fix(FocusScope): keep focus on elements inside an open shadow root nested in the scope (e.g. a web component's
<input>) instead of treating it as escaping the trap (#2223)fix(FocusScope): prevent page scroll when auto-focusing on open, trapping focus, and restoring focus on close (#2217)
fix(LinkPreview): always remove the document
pointeruplistener registered while open. When the content node wasn't attached yet, the open watcher returned early before its cleanup, so the listener was never unsubscribed and kept firing after the preview closed or unmounted. (#2194)fix(NavigationMenu): only register a
NavigationMenu.Content's dismiss/escape layers while it is open so closedforceMountcontent no longer closes the open item on inside clicks or steals escape focus (#2218)fix(Command): item selection logic (#2074)
fix: call
onOpenChangeCompletewithtrueafter content opens and its animations finish, not only on close (#2199)fix(HiddenInput): keep hidden form inputs in sync with component state after a form reset. A native form reset now restores the current value instead of clearing the input, so setting a value right after
form.reset()(e.g. SvelteKituse:enhance'supdate()) is no longer lost. Applies toRadioGroup,Select,Combobox,Checkbox,Switch,RatingGroup, and the date/time fields (#1942) (#2212)fix(DateField): reset the segments when
valueis cleared externally after a date was typed in (#2196)fix(Select/Combobox): highlight the selected item on open when its value is an empty string, and allow selecting it with Enter in
Combobox(#2213)fix(Tabs, Accordion, ToggleGroup, RadioGroup, Toolbar, Menubar): ignore the items and triggers of a nested root of the same kind during keyboard navigation, so arrow keys,
Home,Endand wrapping stay within the outer group (#2190)Resume a paused focus scope when it registers again, so a menu whose trigger sits in a tooltip moves focus into its content when opened. (#2201)
fix(DismissibleLayer): close an open layer when a second outside
pointerdownlands within its 10ms dismissal debounce. The second event replaced the pending one and was judged against the newly opened layer, so rapidly right clicking acrossContextMenutriggers left earlier menus open. (#2229)Set
aria-selected="false"on unselectedSelect.ItemandCombobox.Itemoptions so every option exposes its selection state per the APG listbox pattern. (#2188)fix(Select): give
Select.Triggerthecomboboxrole and pointaria-controlsat the mounted listbox (#2216)fix(Select, Combobox): keep aligning the highlighted item while the content settles after positioning. Chrome that mounts once the content is placed (scroll buttons in the flex flow, a header, a footer) shrinks the viewport under the open-time alignment and left a far-down selection below the fold; the content now realigns on every viewport resize until the user scrolls, which also retires the scroll down button's own mount-time realign. (#2157)
fix(Checkbox): pass the
formprop to the button again and submit the linked form whenEnteris pressed withtype="submit"(#2204)fix(Slider): throw a descriptive error for non-finite
min/max/step(or astepof0) instead of hanging the browser (#2211)fix: skip deferred animation-complete callbacks when the owning component is destroyed before they run (#2210)
fix(Select, Combobox): stop the scroll button auto scroll when the content closes while the button is hovered (#2197)
fix(AlertDialog): prevent delayed open autofocus from focusing replaced content (#2220)
fix(DateField): keep the day period when typing or deleting the hour in 12-hour mode (#2228)
fix(Tooltip): close when any scrolling ancestor of the trigger scrolls (#2206)
v2.19.5Compare Source
Patch Changes
fix(Select): ensure
Select.Valuelabels persist after the select is closed (#2066)fix(DismissibleLayer): dismiss on a touch tap whose
clickfollows itspointerdownwithin a few milliseconds. The click listener was armed only after a 10ms debounce, so on WebKit (mobile Safari) a quick tap on a sibling trigger landed before it and left the open layer open beside the new one. (#2182)fix(body-scroll-lock): restore only modified body styles to preserve concurrent changes (#2175)
Fix
DateRangePickerandDateRangeFieldnot reformatting their segments when thelocaleprop changes after mount. (#2150)fix(FocusScope): trap and restore focus inside a Shadow Root. Focus reads now follow
shadowRoot.activeElementand thefocusintarget comes fromcomposedPath(), so Tab wraps within the scope and focus returns to a trigger inside the root on close. (#2180)v2.19.4Compare Source
Patch Changes
fix(PopperLayer): destructure the internal
forceMountprop out ofrestPropsso it stops leaking onto the rendered content element as an invalidforcemountattribute (Popover, Select, Combobox, DropdownMenu, ContextMenu, Menubar, Tooltip, LinkPreview) (#2176)fix(DismissibleLayer): dismiss on a touch tap even when the tapped element stops click propagation. Touch outside-dismissal waits for the tap's
clickon the document, and a bubbling listener never hears a click whose target handler callsstopPropagation(), so the layer stayed open behind elements that own their clicks. (#2155)v2.19.3Compare Source
Patch Changes
Prevent delayed focus-scope autofocus from overriding focus already established in the scope or a nested scope. (#2165)
fix(Dialog, AlertDialog): pass
preventOverflowTextSelectionto the text selection layer explicitly instead of letting it ride the rest props onto the rendered content element as apreventoverflowtextselectionattribute. (#2154)fix(Floating): ignore
autoUpdatecallbacks that fire after the floating element's effect is destroyed to avoidderived_inert(#2164)Fix
user-select: nonebeing stranded on<body>after clicking insideforceMounted content (Popover, Tooltip, Dialog, AlertDialog, Menu, Select), which left the whole page unselectable until a reload. (#2161)refactor: the context-menu attribute names and the floating root/anchor state move to leaf modules, so
DismissibleLayerno longer imports the menu module for two strings, andFloatingLayer/FloatingLayer.Anchorno longer import the floating content module (and@floating-ui/dom) to register a root and its trigger. No behaviour change. (#2158)fix(Menu): the trigger's
aria-controlslinks to the content when the menu starts open. The content registers its id by replacing a plain field on the menu state, which a trigger rendered before the content had already read as empty and never re-read; the registration is now reactive. (#2159)fix(Combobox): open the trigger on a touch tap instead of on touch down, so a finger that lands on it while scrolling no longer opens the list. Takes the Select trigger's touch timing. (#2156)
perf: avoid O(n) work per rendered item on hot paths (#2110)
Select/Combobox: item props now derive from per-item booleans, so moving the highlight or changing the value only rebuilds props (and re-diffs attributes) for the items that actually changed instead of every mounted itemSelect/Combobox(multiple): selection lookups use a set instead of scanning the value array once per itemCalendar/RangeCalendar:data-todayresolves the local timezone once per calendar rather than once per cellMenufamily: the document-levelpointermovelistener is only attached while keyboard mode is activeScrollArea,Slider,NavigationMenu: internal resize observation shares a singleResizeObserveracross all observed elementsfix(TimeField): keep the day period when typing the hour and then editing another segment in 12-hour mode (#2148)
Fix
user-select: nonebeing left on<body>when something else on the page callspreventDefault()on apointerup, which made the whole page unselectable. The text-selection layer's release is internal cleanup and no longer skipped when the event's default action has been cancelled. (#2163)fix(Collapsible): invalidate deferred measurements when content is replaced or destroyed (#2149)
Fix outside clicks being lost while dismissible content such as DropdownMenu is opening. (#2143)
v2.19.2Compare Source
Patch Changes
fix: render the
idattribute on Popper-based content elements (Tooltip, Popover, Select, Combobox, DropdownMenu, ContextMenu, Menubar, LinkPreview) soaria-describedbyon triggers resolves correctly (#2094)fix: restore body styles on the captured document when delayed scroll-lock cleanup runs after the global document is torn down or replaced (#2133)
fix: respect an explicit
Tabs.Contenttabindex while preserving the default panel tab stop (#2132)v2.19.1Compare Source
Patch Changes
fix(Avatar): detach image handlers on destroy and actually apply the load cleanup - #2050 (#2128)
fix(Menu):
Menu.GroupHeadingno longer setsrole="group",Menu.Separatornow setsrole="separator"(#2091)fix(DismissibleLayer): guard the deferred focus handler against teardown - #2080 (#2126)
fix(DateField): apply date segments in year/month/day order so a valid day isn't clamped by the placeholder's month in day-first locales (#2123)
fix(Select): keep the user's scroll position when the scroll down button remounts. The button unmounts at the bottom of the list and remounts as soon as the viewport leaves it, and its mount effect realigned the viewport onto the highlighted item, so a small scroll up from the bottom jumped back to the highlighted item. (#2109)
fix(DismissibleLayer): outside clicks shortly after a layer opens no longer fail to dismiss it (#2111)
DismissibleLayerStatereset its per-interaction state through a 20ms debounce. Because thelayer's
watchruns its cleanup once on every open, each layer scheduled a reset 20ms into itsown lifetime. An outside
pointerdownlanding 10-20ms after that cleanup had its"responsible layer" flag cleared by the stale reset before the debounced interact-outside
handler ran, so the handler bailed and the layer stayed open. The reset is now synchronous.
fix(ScrollArea): prevent resize work from reading destroyed state after unmount (#2122)
fix(Combobox): highlight the first matching item after custom filtering updates the rendered items. (#2129)
fix(Accordion): cancel deferred content work on destroy to avoid
derived_inert(#2127)v2.19.0Compare Source
Minor Changes
formto the hidden input (#2089)Patch Changes
fix(DateField): keep focus on the year while correcting its first digit (#2100)
fix(Tooltip): close
Tooltip.Triggeronpointerdownfor any pointer button so right/middle click dismiss the tooltip and cancel a pending delayed open (#2101)fix(RadioGroup): don't select item on pointer-driven focus- #2098 (#2098)
v2.18.2Compare Source
Patch Changes
fix(DismissibleLayer): cancel pending
afterSleeptimer on destroy to preventderived_inertand stale document listeners (#2080) (#2087)fix(TextSelectionLayer): don't read the
refbox in#pointerdownbefore the enabled check, which emittedderived_inerton every document pointerdown when a leaked listener outlived its component (#2107)fix(AlertDialog): pass
disabledthrough to button inAlertDialog.Cancel(#2068)Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.